<?php
namespace Admin\Controller;

class AdController extends AdminController {
    //更改状态为可用
        //给用户分配角色 
        public function rolelist(){
            // 用拿到的ID查询数据库,然后传过去
            if (empty($_GET)) {
                $this->error('ID错误');
                exit;
            }
            $u = D('admin');
            $id = 'id='.$_GET['id'];
            $uid = 'uid='.$_GET['id'];
            $user = $u->where($id)->find();
            if($user == null){
                $this->error('这个管理员不存在');
                exit;
            }
            //查询user_role表
            $rolist = D('user_role')->where($uid)->select();
            //这样拿到的数组不对,要处理一下
            $myrole = array();//定义一个空数组来接收
            foreach ($rolist as $val) {
                $myrole[] = $val['rid'];
            }
            // var_dump($myrole);
            // exit;
            //查询role表
            $u = D('role');
            $list = $u->where(array('status'=>array('eq',1)))->select();
            // var_dump($list);exit;
            //传过去
            $this->assign('user',$user);
            $this->assign('list',$list);
            $this->assign('role',$myrole);

            $address = '分配角色';
            $this->assign('address',$address);
            $this->display('Ad/rolelist');
        }
        //保存用户分配的结果
        public function role_save(){
                //判断,必须选择一个角色
                if (empty($_POST['role'])){
                    $this->error('请选择至少一个角色!');
                }
                $uid = $_POST['uid'];
                //先清除该用户对应的角色信息,避免重复
                 D('user_role')->where(array('uid'=>array('eq',$uid)))->delete();
                 // I('role')相当于拿了role整个数组
                 
                foreach (I('role') as $val) {
                    $data['uid'] = $uid;
                    $data['rid'] = $val;
                    //执行添加
                    D('user_role')->data($data)->add();
                }
                $this->success("角色分配成功",U('Ad/index'));
                }
                
        
       //后台查询
       public function index(){
            //这里拿到用户列表
            $m = D('admin');
            $p=getpage($m,$where,10);
            $list=$m->field('id,name,username,denied')->order('id desc')->select();
            $page=$p->show();
            //这里拿用户所属角色
            //声明一个空数组
            $arr = array(); 
            foreach ($list as $v) {
                $role_ids = D('user_role')->field('rid')->where('uid='.$v['id'])->select();
                // var_dump($role_ids);exit;
                //这里遍历,每次都拿到了每个用户对应的角色ID,但不是名字,所以继续遍历
                $roles = array();//声明空数组去装
                foreach ($role_ids as $val) {
                    $roles[] = D(role)->where(array('id'=>array('eq',$val['rid']),'status'=>array('eq',1)))->getField('name');
                }
                //这仅仅是一个用户的,所以还要一个数组去装,形成多维数组
                $v['role'] = $roles;
                $arr[] = $v;
              }
            // var_dump(CONTROLLER_NAME);exit;
            $address = '后台用户列表';
            $this->assign('address',$address);

            $this->assign('list',$arr);
            $this->assign('page',$page);
            $this->display('Ad/index');
       }
       //后台用户切换状态
       public function ad_denied(){
            // var_dump($_GET);exit;
            changedenied($_GET['id'],'denied',$_GET['denied'],'admin');
       }

        
   

    
    //后台用户删除
     public function del()
    {
        //判断 有无 传递ID
        if (empty($_GET['id'])) {
            echo '没有传ID';
            exit;
        }
        //接收ID
        // $id = $_GET['id'];
            $id = I('get.id/d');

            if($id == 1){
                echo '管理员不能被删除';
                exit;
            }
            // echo $id;exit;
            // 执行删除
           
            if (D('admin')->delete($id)>0) {
                //ajax
               echo '删除成功';
            } else {
                // $this->error('删除失败',U('index'));
                echo '删除失败';
            }
    }
    // 后台添加页面
    public function add()
    {
             $address = '后台用户添加';
            $this->assign('address',$address);
            $this->display('Ad/add');
    }
   
        //执行后台添加


 public function insert()
        {
            //过滤数据  
            $User = D('admin');
           
         if (!$User->create()) {
                //如果创建失败  表示验证没有通过 输出错误提示信息
                $this->error($User->getError());
            } else {
                //验证通过
                // echo '1';
             
              // exit;

                // exit;
                if (D('admin')->add()) {
                    $this->success('添加成功',U('Ad/index'));
                } else {
                    $this->error('添加失败...');
                }
            }
        }
        

        //后台修改页面
        public function edit($id)
        {
            $id = I('get.id/d');
            if($id == 1){
                $this->error('管理员不能被修改');
                exit;
            }
            // echo $id;
            //查数据
            $data = D('admin')->find($id);
            // var_dump($data);exit;    
            // $this->assign('title','编辑用户');
            $this->assign('data',$data);
           // var_dump($data) ;exit;
            $address = '后台用户编辑';
            $this->assign('address',$address);
            $this->display('Ad/edit'); 
        }
        //执行后台修改执行
        public function save()
        {
            //判断有无传递POST
            if (empty($_POST)) {
                $this->error('请完善数据');
                exit;
            }
            // var_dump($_POST);
            // $id = 'id='.$_POST['id'];
            $admin = D('admin');
            if(!$admin->create()){
                $this->error($admin->getError());
            }else{
                //验证通过
                
                $result = $admin->save();
                // echo $result;exit;
                if ($result >0 )
                {
                     $this->success('编辑成功',U('Ad/index'));
                }else{
                    $this->error('编辑失败');
                }
            }
         
        }
    }
    